package edu.uoc.tdp.beans.conexio;

import java.util.Date;

/**
 *
 * @author Grup TDP 1X4J
 */
public class Usuari extends Persona {
    
    protected int idIntern;
    private String idUsuari;
    private String pwd;
    private String email;
    private String estatEnSistema;
    private Administrador usuariCreacio;
    private Date dataCreacio;
    private Administrador usuariModificacio;
    private Date dataModificacio;
    private Administrador usuariEsborrat;
    private Date dataEsborrat;

    /**
     * Constructor de la classe Usuari sense parametres
     */

    public Usuari() {
    }

    /**
     * Constructor de la classe Usuari amb paràmetres d'identificador
     *
     * @param pTipusDocumentId Identificador del Document
     * @param pDocument        Document identificatiu
     */

    public Usuari(String pTipusDocumentId, String pDocument) {
        super(pTipusDocumentId, pDocument);
    }

    
    /**
     * Constructor de la classe Usuari amb els paràmetres bàsics
     *
     * @param pIdUsuari        Identificador de l'Usuari a l'aplicatiu
     * @param pPwd             Password de l'usuari per l'entrada a aplicatiu
     * @param pEMail           Correu electrònic de l'usuari
     * @param pTipusDocumentId Identificador del Document de l'usuari
     * @param pDocument        Document Identificatiu de l'usuari
     * @param pNom             Nom  de l'usuari
     * @param pCognom1         Primer cognom de l'usuari
     * @param pCognom2         Segon cognom de l'usuari
     * @param pEstat           Estat de l'usuari en l'aplicatiu
     */

    public Usuari(String pIdUsuari, String pPwd, String pEmail, 
                  String pTipusDocumentId, String pDocument, String pNom, 
                  String pCognom1, String pCognom2, String pEstat) {
        super(pTipusDocumentId, pDocument, "", pNom, pCognom1, pCognom2, null);
        this.idUsuari = pIdUsuari;
        this.pwd      = pPwd;
        this.email    = pEmail;
        this.estatEnSistema = pEstat;
    }

    /**
     * Accessor de lectura de l'identificador intern de l'usuari.
     *
     * @return Identificador intern de l'usuari
     */
    public int getIdIntern() {
        return idIntern;
    }

    /**
     * Accessor d'escriptura de l'identificador intern de l'usuari.
     *
     * @param idIntern Identificador intern de l'usuari
     */
    public void setIdIntern(int idIntern) {
        this.idIntern = idIntern;
    }

    /**
     * Accessor de lectura de l'identificador de l'usuari a l'aplicatiu.
     *
     * @return Identificador de l'usuari a l'aplicatiu
     */
    public String getIdUsuari() {
        return idUsuari;
    }

    /**
     * Accessor d'escriptura de l'identificador de l'usuari a l'aplicatiu
     *
     * @param idUsuari Identificador de l'usuari a l'aplicatiu
     */
    public void setIdUsuari(String idUsuari) {
        this.idUsuari = idUsuari;
    }

    /**
     * Accessor de lectura del password de l'usuari.
     *
     * @return Password de l'usuari
     */
    public String getPwd() {
        return pwd.trim();  // Password a la BD està amb espais al darrera ?¿?¿?¿?¿
    }

    /**
     * Accessor d'escriptura del password de l'usuari.
     *
     * @param pwd Password de l'usuari
     */
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    /**
     * Accessor de lectura del correu electrònic de l'usuari.
     *
     * @return Correu electrònic de l'usuari
     */
    public String getEmail() {
        return email;
    }

    /**
     * Accessor d'escriptura del correu electrònic de l'usuari.
     *
     * @param email Correu electrònic de l'usuari
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * Accessor de lectura de l'estat de l'usuari en l'aplicatiu.
     *
     * @return Estat de l'usuari en l'aplicatiu
     */
    public String getEstatEnSistema() {
        return estatEnSistema;
    }

    /**
     * Accessor d'escriptura de l'estat de l'usuari en l'aplicatiu.
     *
     * @param estatEnSistema Estat de l'usuari en l'aplicatiu
     */
    public void setEstatEnSistema(String estatEnSistema) {
        this.estatEnSistema = estatEnSistema;
    }

    /**
     * Accessor de lectura de l'administrador que ha creat la fitxa de l'usuari.
     *
     * @return Administrador que ha creat la fitxa de l'usuari
     */
    public Administrador getUsuariCreacio() {
        return usuariCreacio;
    }

    /**
     * Accessor d'escriptura de l'administrador que ha creat la fitxa de l'usuari.
     *
     * @param usuariCreacio Administrador que ha creat la fitxa de l'usuari
     */
    public void setUsuariCreacio(Administrador usuariCreacio) {
        this.usuariCreacio = usuariCreacio;
    }

    /**
     * Accessor de lectura de la data de creació de la fitxa de l'usuari.
     *
     * @return Data de creació de la fitxa de l'usuari
     */
    public Date getDataCreacio() {
        return dataCreacio;
    }

    /**
     * Accessor d'escriptura de la data de creació de la fitxa de l'usuari.
     *
     * @param dataCreacio Data de creació de la fitxa de l'usuari
     */
    public void setDataCreacio(Date dataCreacio) {
        this.dataCreacio = dataCreacio;
    }

    /**
     * Accessor de lectura de l'administrador que ha esborrat la fitxa de l'usuari.
     *
     * @return Administrador que ha esborrat la fitxa de l'usuari
     */
    public Administrador getUsuariEsborrat() {
        return usuariEsborrat;
    }

    /**
     * Accessor d'escriptura de l'administrador que ha esborrat la fitxa de l'usuari.
     *
     * @param usuariEsborrat Administrador que ha esborrat la fitxa de l'usuari
     */
    public void setUsuariEsborrat(Administrador usuariEsborrat) {
        this.usuariEsborrat = usuariEsborrat;
    }

    /**
     * Accessor de lectura de la data de borrat de la fitxa de l'usuari.
     *
     * @return Data de borrat de la fitxa de l'usuari
     */
    public Date getDataEsborrat() {
        return dataEsborrat;
    }

    /**
     * Accessor d'escriptura de la data de borrat de la fitxa de l'usuari.
     *
     * @param dataEsborrat Data de borrat de la fitxa de l'usuari
     */
    public void setDataEsborrat(Date dataEsborrat) {
        this.dataEsborrat = dataEsborrat;
    }

    /**
     * Accessor de lectura de l'administrador que ha fet modificació de la fitxa de l'usuari.
     *
     * @return Administrador que ha fet modificació a la fitxa de l'usuari
     */
    public Administrador getUsuariModificacio() {
        return usuariModificacio;
    }

    /**
     * Accessor d'escriptura de l'administrador que ha fet modificació de la fitxa de l'usuari.
     *
     * @param usuariModificacio Administrador que ha fet modificació de la fitxa de l'usuari
     */
    public void setUsuariModificacio(Administrador usuariModificacio) {
        this.usuariModificacio = usuariModificacio;
    }

    /**
     * Accessor de lectura de la data de modificació de la fitxa de l'usuari.
     *
     * @return Data de modificació de la fitxa de l'usuari
     */
    public Date getDataModificacio() {
        return dataModificacio;
    }

    /**
     * Accessor d'escriptura de la data de modificació de la fitxa de l'usuari.
     *
     * @param dataModificacio Data de modificació de la fitxa de l'usuari
     */
    public void setDataModificacio(Date dataModificacio) {
        this.dataModificacio = dataModificacio;
    }
    
    
}
